#ifndef __COMPOSED_DTD__
#define __COMPOSED_DTD__

#include "CardDTD.h"
#include "StructureDTD.h"
#include <vector>
#include <string>

class ComposedStructDTD : public StructureDTD
{
	protected:
		std::vector<ComponentDTD * > components; // components of the structure (sequence or chocie)
		Card card; // cardinality (+, * or ?)

	public:
        ComposedStructDTD() {};
        virtual ~ComposedStructDTD() {};
		void addComponent(ComponentDTD * c);
		void setCard(Card c);
		virtual void display() const;
		/** Get the list of identificators in the vector components **/
		virtual std::vector<std::string> * getChildren() const;

};

#endif
